<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Jetson Inference: gstCamera Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="NVLogo_2D.jpg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Jetson Inference
   </div>
   <div id="projectbrief">DNN Vision Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classgstCamera.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="classgstCamera-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">gstCamera Class Reference<div class="ingroups"><a class="el" href="group__util.html">Utilities Library (jetson-utils)</a> &raquo; <a class="el" href="group__camera.html">Camera Capture</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>MIPI CSI and V4L2 camera capture using GStreamer and <code>nvarguscamerasrc</code> or <code>v4l2src</code> elements.  
 <a href="classgstCamera.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="gstCamera_8h_source.html">gstCamera.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for gstCamera:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classgstCamera.png" usemap="#gstCamera_map" alt=""/>
  <map id="gstCamera_map" name="gstCamera_map">
<area href="classvideoSource.html" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras..." alt="videoSource" shape="rect" coords="0,0,84,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1df842937128e70d8f140c65e88e783c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgstCamera.html#a1df842937128e70d8f140c65e88e783c">~gstCamera</a> ()</td></tr>
<tr class="memdesc:a1df842937128e70d8f140c65e88e783c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release the camera interface and resources.  <a href="#a1df842937128e70d8f140c65e88e783c">More...</a><br /></td></tr>
<tr class="separator:a1df842937128e70d8f140c65e88e783c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28f4842c5648a253a1acee5276ac8486"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgstCamera.html#a28f4842c5648a253a1acee5276ac8486">Open</a> ()</td></tr>
<tr class="memdesc:a28f4842c5648a253a1acee5276ac8486"><td class="mdescLeft">&#160;</td><td class="mdescRight">Begin streaming the camera.  <a href="#a28f4842c5648a253a1acee5276ac8486">More...</a><br /></td></tr>
<tr class="separator:a28f4842c5648a253a1acee5276ac8486"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8798df5c10fff5ecbaf2598816c94f55"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgstCamera.html#a8798df5c10fff5ecbaf2598816c94f55">Close</a> ()</td></tr>
<tr class="memdesc:a8798df5c10fff5ecbaf2598816c94f55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop streaming the camera.  <a href="#a8798df5c10fff5ecbaf2598816c94f55">More...</a><br /></td></tr>
<tr class="separator:a8798df5c10fff5ecbaf2598816c94f55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add77384dd73058543da2f1c722e00a30"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:add77384dd73058543da2f1c722e00a30"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgstCamera.html#add77384dd73058543da2f1c722e00a30">Capture</a> (T **image, uint64_t timeout=UINT64_MAX)</td></tr>
<tr class="memdesc:add77384dd73058543da2f1c722e00a30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Capture the next image frame from the camera.  <a href="#add77384dd73058543da2f1c722e00a30">More...</a><br /></td></tr>
<tr class="separator:add77384dd73058543da2f1c722e00a30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb2ece71edfbd233b8a84d93c8fbcab4"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgstCamera.html#afb2ece71edfbd233b8a84d93c8fbcab4">Capture</a> (void **image, <a class="el" href="group__imageFormat.html#ga931c48e08f361637d093355d64583406">imageFormat</a> format, uint64_t timeout=UINT64_MAX)</td></tr>
<tr class="memdesc:afb2ece71edfbd233b8a84d93c8fbcab4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Capture the next image frame from the camera.  <a href="#afb2ece71edfbd233b8a84d93c8fbcab4">More...</a><br /></td></tr>
<tr class="separator:afb2ece71edfbd233b8a84d93c8fbcab4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93371e3811a1956ff96c154fd1da23f2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgstCamera.html#a93371e3811a1956ff96c154fd1da23f2">CaptureRGBA</a> (float **image, uint64_t timeout=UINT64_MAX, bool zeroCopy=false)</td></tr>
<tr class="memdesc:a93371e3811a1956ff96c154fd1da23f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Capture the next image frame from the camera and convert it to float4 RGBA format, with pixel intensities ranging between 0.0 and 255.0.  <a href="#a93371e3811a1956ff96c154fd1da23f2">More...</a><br /></td></tr>
<tr class="separator:a93371e3811a1956ff96c154fd1da23f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40bdf4c4b7675e33bf670df07918e9c6"><td class="memItemLeft" align="right" valign="top">virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgstCamera.html#a40bdf4c4b7675e33bf670df07918e9c6">GetType</a> () const</td></tr>
<tr class="memdesc:a40bdf4c4b7675e33bf670df07918e9c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the interface type (<a class="el" href="classgstCamera.html#a9e83835ff04fb08ecef14a67efb5c3d5" title="Unique type identifier of gstCamera class. ">gstCamera::Type</a>)  <a href="#a40bdf4c4b7675e33bf670df07918e9c6">More...</a><br /></td></tr>
<tr class="separator:a40bdf4c4b7675e33bf670df07918e9c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classvideoSource"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classvideoSource')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classvideoSource.html">videoSource</a></td></tr>
<tr class="memitem:a2cae1095df64b7c61de77935b77032bb inherit pub_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#a2cae1095df64b7c61de77935b77032bb">~videoSource</a> ()</td></tr>
<tr class="memdesc:a2cae1095df64b7c61de77935b77032bb inherit pub_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy interface and release all resources.  <a href="classvideoSource.html#a2cae1095df64b7c61de77935b77032bb">More...</a><br /></td></tr>
<tr class="separator:a2cae1095df64b7c61de77935b77032bb inherit pub_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a872a7d5353b1cd97d02eb403ef8b57eb inherit pub_methods_classvideoSource"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a872a7d5353b1cd97d02eb403ef8b57eb inherit pub_methods_classvideoSource"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classvideoSource.html#a872a7d5353b1cd97d02eb403ef8b57eb">Capture</a> (T **image, uint64_t timeout=UINT64_MAX)</td></tr>
<tr class="memdesc:a872a7d5353b1cd97d02eb403ef8b57eb inherit pub_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Capture the next image from the video stream.  <a href="classvideoSource.html#a872a7d5353b1cd97d02eb403ef8b57eb">More...</a><br /></td></tr>
<tr class="separator:a872a7d5353b1cd97d02eb403ef8b57eb inherit pub_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ce18fd4c3a8f934e7ec000f0d36b7e9 inherit pub_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#a0ce18fd4c3a8f934e7ec000f0d36b7e9">IsStreaming</a> () const</td></tr>
<tr class="memdesc:a0ce18fd4c3a8f934e7ec000f0d36b7e9 inherit pub_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the device is actively streaming or not.  <a href="classvideoSource.html#a0ce18fd4c3a8f934e7ec000f0d36b7e9">More...</a><br /></td></tr>
<tr class="separator:a0ce18fd4c3a8f934e7ec000f0d36b7e9 inherit pub_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17f0c43e832d4de85a014b3aa4265732 inherit pub_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#a17f0c43e832d4de85a014b3aa4265732">GetWidth</a> () const</td></tr>
<tr class="memdesc:a17f0c43e832d4de85a014b3aa4265732 inherit pub_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the width of the stream, in pixels.  <a href="classvideoSource.html#a17f0c43e832d4de85a014b3aa4265732">More...</a><br /></td></tr>
<tr class="separator:a17f0c43e832d4de85a014b3aa4265732 inherit pub_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ca24054da683cae18b0bfad01dbf1d0 inherit pub_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#a6ca24054da683cae18b0bfad01dbf1d0">GetHeight</a> () const</td></tr>
<tr class="memdesc:a6ca24054da683cae18b0bfad01dbf1d0 inherit pub_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the height of the stream, in pixels.  <a href="classvideoSource.html#a6ca24054da683cae18b0bfad01dbf1d0">More...</a><br /></td></tr>
<tr class="separator:a6ca24054da683cae18b0bfad01dbf1d0 inherit pub_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e6ac667bd17a49cc94a6b16173a06ba inherit pub_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#a4e6ac667bd17a49cc94a6b16173a06ba">GetFrameRate</a> () const</td></tr>
<tr class="memdesc:a4e6ac667bd17a49cc94a6b16173a06ba inherit pub_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the framerate, in Hz or FPS.  <a href="classvideoSource.html#a4e6ac667bd17a49cc94a6b16173a06ba">More...</a><br /></td></tr>
<tr class="separator:a4e6ac667bd17a49cc94a6b16173a06ba inherit pub_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2052b0b41222c17e3d14964f10c3ffa6 inherit pub_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structURI.html">URI</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#a2052b0b41222c17e3d14964f10c3ffa6">GetResource</a> () const</td></tr>
<tr class="memdesc:a2052b0b41222c17e3d14964f10c3ffa6 inherit pub_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory. ">URI</a> of the stream.  <a href="classvideoSource.html#a2052b0b41222c17e3d14964f10c3ffa6">More...</a><br /></td></tr>
<tr class="separator:a2052b0b41222c17e3d14964f10c3ffa6 inherit pub_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d423829515c5c91d132f476213e22bd inherit pub_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structvideoOptions.html">videoOptions</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#a7d423829515c5c91d132f476213e22bd">GetOptions</a> () const</td></tr>
<tr class="memdesc:a7d423829515c5c91d132f476213e22bd inherit pub_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the <a class="el" href="structvideoOptions.html" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> of the stream.  <a href="classvideoSource.html#a7d423829515c5c91d132f476213e22bd">More...</a><br /></td></tr>
<tr class="separator:a7d423829515c5c91d132f476213e22bd inherit pub_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0883cf58cd0d8d0c05fb192a01250b7a inherit pub_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#a0883cf58cd0d8d0c05fb192a01250b7a">IsType</a> (uint32_t type) const</td></tr>
<tr class="memdesc:a0883cf58cd0d8d0c05fb192a01250b7a inherit pub_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if this stream is of a particular type.  <a href="classvideoSource.html#a0883cf58cd0d8d0c05fb192a01250b7a">More...</a><br /></td></tr>
<tr class="separator:a0883cf58cd0d8d0c05fb192a01250b7a inherit pub_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3c1689db5baf2786099d2c0be075010 inherit pub_methods_classvideoSource"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ad3c1689db5baf2786099d2c0be075010 inherit pub_methods_classvideoSource"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classvideoSource.html#ad3c1689db5baf2786099d2c0be075010">IsType</a> () const</td></tr>
<tr class="memdesc:ad3c1689db5baf2786099d2c0be075010 inherit pub_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a this stream is of a particular type.  <a href="classvideoSource.html#ad3c1689db5baf2786099d2c0be075010">More...</a><br /></td></tr>
<tr class="separator:ad3c1689db5baf2786099d2c0be075010 inherit pub_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38909f4451ecdf3a2777aea3a088677e inherit pub_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#a38909f4451ecdf3a2777aea3a088677e">TypeToStr</a> () const</td></tr>
<tr class="memdesc:a38909f4451ecdf3a2777aea3a088677e inherit pub_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert this stream's class type to string.  <a href="classvideoSource.html#a38909f4451ecdf3a2777aea3a088677e">More...</a><br /></td></tr>
<tr class="separator:a38909f4451ecdf3a2777aea3a088677e inherit pub_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:acdad73a19658174d179845611f4e8b3f"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classgstCamera.html">gstCamera</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgstCamera.html#acdad73a19658174d179845611f4e8b3f">Create</a> (const <a class="el" href="structvideoOptions.html">videoOptions</a> &amp;options)</td></tr>
<tr class="memdesc:acdad73a19658174d179845611f4e8b3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a MIPI CSI or V4L2 camera device.  <a href="#acdad73a19658174d179845611f4e8b3f">More...</a><br /></td></tr>
<tr class="separator:acdad73a19658174d179845611f4e8b3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1747140a15dd83dbd3593c375bbc85d0"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classgstCamera.html">gstCamera</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgstCamera.html#a1747140a15dd83dbd3593c375bbc85d0">Create</a> (const char *camera=NULL)</td></tr>
<tr class="memdesc:a1747140a15dd83dbd3593c375bbc85d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a MIPI CSI or V4L2 camera device.  <a href="#a1747140a15dd83dbd3593c375bbc85d0">More...</a><br /></td></tr>
<tr class="separator:a1747140a15dd83dbd3593c375bbc85d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e35c53ac1d65ba5c0319278ca097766"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classgstCamera.html">gstCamera</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgstCamera.html#a4e35c53ac1d65ba5c0319278ca097766">Create</a> (uint32_t width, uint32_t height, const char *camera=NULL)</td></tr>
<tr class="memdesc:a4e35c53ac1d65ba5c0319278ca097766"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a MIPI CSI or V4L2 camera device.  <a href="#a4e35c53ac1d65ba5c0319278ca097766">More...</a><br /></td></tr>
<tr class="separator:a4e35c53ac1d65ba5c0319278ca097766"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_methods_classvideoSource"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classvideoSource')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classvideoSource.html">videoSource</a></td></tr>
<tr class="memitem:aadf5947b119db934f02fefcd8ffe23ee inherit pub_static_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classvideoSource.html">videoSource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#aadf5947b119db934f02fefcd8ffe23ee">Create</a> (const <a class="el" href="structvideoOptions.html">videoOptions</a> &amp;options)</td></tr>
<tr class="memdesc:aadf5947b119db934f02fefcd8ffe23ee inherit pub_static_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="classvideoSource.html" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras...">videoSource</a> interface from a <a class="el" href="structvideoOptions.html" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> struct that's already been filled out.  <a href="classvideoSource.html#aadf5947b119db934f02fefcd8ffe23ee">More...</a><br /></td></tr>
<tr class="separator:aadf5947b119db934f02fefcd8ffe23ee inherit pub_static_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac84b9d20c628c19e0463aca50ed2cdf9 inherit pub_static_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classvideoSource.html">videoSource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#ac84b9d20c628c19e0463aca50ed2cdf9">Create</a> (const char *<a class="el" href="structURI.html">URI</a>, const <a class="el" href="structvideoOptions.html">videoOptions</a> &amp;options=<a class="el" href="structvideoOptions.html">videoOptions</a>())</td></tr>
<tr class="memdesc:ac84b9d20c628c19e0463aca50ed2cdf9 inherit pub_static_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="classvideoSource.html" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras...">videoSource</a> interface from a resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory. ">URI</a> string and optional <a class="el" href="structvideoOptions.html" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a>.  <a href="classvideoSource.html#ac84b9d20c628c19e0463aca50ed2cdf9">More...</a><br /></td></tr>
<tr class="separator:ac84b9d20c628c19e0463aca50ed2cdf9 inherit pub_static_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17577a0ed75a86cea8e579f4405a2942 inherit pub_static_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classvideoSource.html">videoSource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#a17577a0ed75a86cea8e579f4405a2942">Create</a> (const char *<a class="el" href="structURI.html">URI</a>, const <a class="el" href="classcommandLine.html">commandLine</a> &amp;cmdLine)</td></tr>
<tr class="memdesc:a17577a0ed75a86cea8e579f4405a2942 inherit pub_static_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="classvideoSource.html" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras...">videoSource</a> interface from a resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory. ">URI</a> string and parsing command line arguments.  <a href="classvideoSource.html#a17577a0ed75a86cea8e579f4405a2942">More...</a><br /></td></tr>
<tr class="separator:a17577a0ed75a86cea8e579f4405a2942 inherit pub_static_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6306cfc0359265983842b56b5cf09212 inherit pub_static_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classvideoSource.html">videoSource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#a6306cfc0359265983842b56b5cf09212">Create</a> (const char *<a class="el" href="structURI.html">URI</a>, const int argc, char **argv)</td></tr>
<tr class="memdesc:a6306cfc0359265983842b56b5cf09212 inherit pub_static_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="classvideoSource.html" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras...">videoSource</a> interface from a resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory. ">URI</a> string and parsing command line arguments.  <a href="classvideoSource.html#a6306cfc0359265983842b56b5cf09212">More...</a><br /></td></tr>
<tr class="separator:a6306cfc0359265983842b56b5cf09212 inherit pub_static_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa796136bec7acf354e3e81e5b7c0172a inherit pub_static_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classvideoSource.html">videoSource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#aa796136bec7acf354e3e81e5b7c0172a">Create</a> (const int argc, char **argv, int positionArg=-1)</td></tr>
<tr class="memdesc:aa796136bec7acf354e3e81e5b7c0172a inherit pub_static_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="classvideoSource.html" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras...">videoSource</a> interface by parsing command line arguments, including the resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory. ">URI</a>.  <a href="classvideoSource.html#aa796136bec7acf354e3e81e5b7c0172a">More...</a><br /></td></tr>
<tr class="separator:aa796136bec7acf354e3e81e5b7c0172a inherit pub_static_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac529c5b81c74eb71436e2031a6c1f214 inherit pub_static_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classvideoSource.html">videoSource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#ac529c5b81c74eb71436e2031a6c1f214">Create</a> (const <a class="el" href="classcommandLine.html">commandLine</a> &amp;cmdLine, int positionArg=-1)</td></tr>
<tr class="memdesc:ac529c5b81c74eb71436e2031a6c1f214 inherit pub_static_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="classvideoSource.html" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras...">videoSource</a> interface by parsing command line arguments, including the resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory. ">URI</a>.  <a href="classvideoSource.html#ac529c5b81c74eb71436e2031a6c1f214">More...</a><br /></td></tr>
<tr class="separator:ac529c5b81c74eb71436e2031a6c1f214 inherit pub_static_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac254b0c9d38c76c62e6c5f8ad20ef447 inherit pub_static_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#ac254b0c9d38c76c62e6c5f8ad20ef447">Usage</a> ()</td></tr>
<tr class="memdesc:ac254b0c9d38c76c62e6c5f8ad20ef447 inherit pub_static_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Usage string for command line arguments to <a class="el" href="classvideoSource.html#aadf5947b119db934f02fefcd8ffe23ee" title="Create videoSource interface from a videoOptions struct that&#39;s already been filled out...">Create()</a>  <a href="classvideoSource.html#ac254b0c9d38c76c62e6c5f8ad20ef447">More...</a><br /></td></tr>
<tr class="separator:ac254b0c9d38c76c62e6c5f8ad20ef447 inherit pub_static_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac080abc0de51300f838596d11b5544a8 inherit pub_static_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#ac080abc0de51300f838596d11b5544a8">TypeToStr</a> (uint32_t type)</td></tr>
<tr class="memdesc:ac080abc0de51300f838596d11b5544a8 inherit pub_static_methods_classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a class type to a string.  <a href="classvideoSource.html#ac080abc0de51300f838596d11b5544a8">More...</a><br /></td></tr>
<tr class="separator:ac080abc0de51300f838596d11b5544a8 inherit pub_static_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a9e83835ff04fb08ecef14a67efb5c3d5"><td class="memItemLeft" align="right" valign="top">static const uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgstCamera.html#a9e83835ff04fb08ecef14a67efb5c3d5">Type</a> = (1 &lt;&lt; 0)</td></tr>
<tr class="memdesc:a9e83835ff04fb08ecef14a67efb5c3d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unique type identifier of <a class="el" href="classgstCamera.html" title="MIPI CSI and V4L2 camera capture using GStreamer and nvarguscamerasrc or v4l2src elements. ">gstCamera</a> class.  <a href="#a9e83835ff04fb08ecef14a67efb5c3d5">More...</a><br /></td></tr>
<tr class="separator:a9e83835ff04fb08ecef14a67efb5c3d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a211a6c9359a2f43054771f15e7628a5e"><td class="memItemLeft" align="right" valign="top">static const uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgstCamera.html#a211a6c9359a2f43054771f15e7628a5e">DefaultWidth</a> = 1280</td></tr>
<tr class="memdesc:a211a6c9359a2f43054771f15e7628a5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default camera width, unless otherwise specified during <a class="el" href="classgstCamera.html#acdad73a19658174d179845611f4e8b3f" title="Create a MIPI CSI or V4L2 camera device. ">Create()</a>  <a href="#a211a6c9359a2f43054771f15e7628a5e">More...</a><br /></td></tr>
<tr class="separator:a211a6c9359a2f43054771f15e7628a5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42ab558b8ff9a0bf47b768c5122825b7"><td class="memItemLeft" align="right" valign="top">static const uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgstCamera.html#a42ab558b8ff9a0bf47b768c5122825b7">DefaultHeight</a> = 720</td></tr>
<tr class="memdesc:a42ab558b8ff9a0bf47b768c5122825b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default camera height, unless otherwise specified during <a class="el" href="classgstCamera.html#acdad73a19658174d179845611f4e8b3f" title="Create a MIPI CSI or V4L2 camera device. ">Create()</a>  <a href="#a42ab558b8ff9a0bf47b768c5122825b7">More...</a><br /></td></tr>
<tr class="separator:a42ab558b8ff9a0bf47b768c5122825b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_methods_classvideoSource"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classvideoSource')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classvideoSource.html">videoSource</a></td></tr>
<tr class="memitem:aaee65d53e3dfb3f4644608c0eebcf833 inherit pro_methods_classvideoSource"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#aaee65d53e3dfb3f4644608c0eebcf833">videoSource</a> (const <a class="el" href="structvideoOptions.html">videoOptions</a> &amp;options)</td></tr>
<tr class="separator:aaee65d53e3dfb3f4644608c0eebcf833 inherit pro_methods_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classvideoSource"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classvideoSource')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classvideoSource.html">videoSource</a></td></tr>
<tr class="memitem:a0907f7140f13fa75fef5b23a1f44b55b inherit pro_attribs_classvideoSource"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#a0907f7140f13fa75fef5b23a1f44b55b">mStreaming</a></td></tr>
<tr class="separator:a0907f7140f13fa75fef5b23a1f44b55b inherit pro_attribs_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3c05686659fae747ff8709be2c9b445 inherit pro_attribs_classvideoSource"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structvideoOptions.html">videoOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoSource.html#aa3c05686659fae747ff8709be2c9b445">mOptions</a></td></tr>
<tr class="separator:aa3c05686659fae747ff8709be2c9b445 inherit pro_attribs_classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>MIPI CSI and V4L2 camera capture using GStreamer and <code>nvarguscamerasrc</code> or <code>v4l2src</code> elements. </p>
<p><a class="el" href="classgstCamera.html" title="MIPI CSI and V4L2 camera capture using GStreamer and nvarguscamerasrc or v4l2src elements. ">gstCamera</a> supports both MIPI CSI cameras and V4L2-compliant devices like USB webcams.</p>
<p>Examples of MIPI CSI cameras that work out of the box are the OV5693 module from the Jetson TX1/TX2 devkits, and the IMX219 sensor from the Raspberry Pi Camera Module v2.</p>
<p>For MIPI CSI cameras, the GStreamer element <code>nvarguscamerasrc</code> will be used for capture. For V4L2 devices, the GStreamer element <code>v4l2src</code> will be used for camera capture.</p>
<p><a class="el" href="classgstCamera.html" title="MIPI CSI and V4L2 camera capture using GStreamer and nvarguscamerasrc or v4l2src elements. ">gstCamera</a> uses CUDA underneath for any necessary colorspace conversion, and provides the captured image frames in CUDA device memory, or zero-copy shared CPU/GPU memory.</p>
<dl class="section note"><dt>Note</dt><dd><a class="el" href="classgstCamera.html" title="MIPI CSI and V4L2 camera capture using GStreamer and nvarguscamerasrc or v4l2src elements. ">gstCamera</a> now implements the <a class="el" href="classvideoSource.html" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras...">videoSource</a> interface and is intended to be used through that as opposed to directly. <a class="el" href="classvideoSource.html" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras...">videoSource</a> implements additional command-line parsing of <a class="el" href="structvideoOptions.html" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> to construct instances. Some legacy APIs of <a class="el" href="classgstCamera.html" title="MIPI CSI and V4L2 camera capture using GStreamer and nvarguscamerasrc or v4l2src elements. ">gstCamera</a> are now marked deprecated.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classvideoSource.html" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras...">videoSource</a> </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a1df842937128e70d8f140c65e88e783c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1df842937128e70d8f140c65e88e783c">&#9670;&nbsp;</a></span>~gstCamera()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">gstCamera::~gstCamera </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Release the camera interface and resources. </p>
<p>Destroying the camera will also <a class="el" href="classgstCamera.html#a8798df5c10fff5ecbaf2598816c94f55" title="Stop streaming the camera. ">Close()</a> the stream if it is still open. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="add77384dd73058543da2f1c722e00a30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add77384dd73058543da2f1c722e00a30">&#9670;&nbsp;</a></span>Capture() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool gstCamera::Capture </td>
          <td>(</td>
          <td class="paramtype">T **&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>timeout</em> = <code>UINT64_MAX</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Capture the next image frame from the camera. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classvideoSource.html#a872a7d5353b1cd97d02eb403ef8b57eb" title="Capture the next image from the video stream. ">videoSource::Capture</a> </dd></dl>

</div>
</div>
<a id="afb2ece71edfbd233b8a84d93c8fbcab4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb2ece71edfbd233b8a84d93c8fbcab4">&#9670;&nbsp;</a></span>Capture() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool gstCamera::Capture </td>
          <td>(</td>
          <td class="paramtype">void **&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__imageFormat.html#ga931c48e08f361637d093355d64583406">imageFormat</a>&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>timeout</em> = <code>UINT64_MAX</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Capture the next image frame from the camera. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classvideoSource.html#a872a7d5353b1cd97d02eb403ef8b57eb" title="Capture the next image from the video stream. ">videoSource::Capture</a> </dd></dl>

<p>Implements <a class="el" href="classvideoSource.html#a81bf11e5819d747eb9060a71e78fce75">videoSource</a>.</p>

</div>
</div>
<a id="a93371e3811a1956ff96c154fd1da23f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a93371e3811a1956ff96c154fd1da23f2">&#9670;&nbsp;</a></span>CaptureRGBA()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool gstCamera::CaptureRGBA </td>
          <td>(</td>
          <td class="paramtype">float **&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>timeout</em> = <code>UINT64_MAX</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>zeroCopy</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Capture the next image frame from the camera and convert it to float4 RGBA format, with pixel intensities ranging between 0.0 and 255.0. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000009">Deprecated:</a></b></dt><dd><a class="el" href="classgstCamera.html#a93371e3811a1956ff96c154fd1da23f2" title="Capture the next image frame from the camera and convert it to float4 RGBA format, with pixel intensities ranging between 0.0 and 255.0. ">CaptureRGBA()</a> has been deprecated and is only provided for legacy compatibility. Please use the updated <a class="el" href="classgstCamera.html#add77384dd73058543da2f1c722e00a30" title="Capture the next image frame from the camera. ">Capture()</a> function instead.</dd></dl>
<p>Internally, <a class="el" href="classgstCamera.html#a93371e3811a1956ff96c154fd1da23f2" title="Capture the next image frame from the camera and convert it to float4 RGBA format, with pixel intensities ranging between 0.0 and 255.0. ">CaptureRGBA()</a> first calls <a class="el" href="classgstCamera.html#add77384dd73058543da2f1c722e00a30" title="Capture the next image frame from the camera. ">Capture()</a> and then ConvertRGBA(). The ConvertRGBA() function uses CUDA, so if you want to capture from a different thread than your CUDA device, use the <a class="el" href="classgstCamera.html#add77384dd73058543da2f1c722e00a30" title="Capture the next image frame from the camera. ">Capture()</a> and ConvertRGBA() functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">image</td><td>Pointer that gets returned to the image in GPU address space, or if the zeroCopy parameter is true, then the pointer is valid in both CPU and GPU address spaces. Do not manually free the image memory, it is managed internally. The image is in float4 RGBA format. The size of the image is: <code><a class="el" href="classvideoSource.html#a17f0c43e832d4de85a014b3aa4265732" title="Return the width of the stream, in pixels. ">GetWidth()</a> * <a class="el" href="classvideoSource.html#a6ca24054da683cae18b0bfad01dbf1d0" title="Return the height of the stream, in pixels. ">GetHeight()</a> * sizeof(float) * 4</code></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>The time in milliseconds for the calling thread to wait to return if a new camera frame isn't recieved by that time. If timeout is 0, the calling thread will return immediately if a new frame isn't already available. If timeout is UINT64_MAX, the calling thread will wait indefinetly for a new frame to arrive (this is the default behavior).</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">zeroCopy</td><td>If <code>true</code>, the image will reside in shared CPU/GPU memory. If <code>false</code>, the image will only be accessible from the GPU. You would need to set zeroCopy to <code>true</code> if you wanted to access the image pixels from the CPU. Since this isn't generally the case, the default is <code>false</code> (GPU only).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if a frame was successfully captured, otherwise <code>false</code> if a timeout or error occurred, or if timeout was 0 and a frame wasn't ready. </dd></dl>

</div>
</div>
<a id="a8798df5c10fff5ecbaf2598816c94f55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8798df5c10fff5ecbaf2598816c94f55">&#9670;&nbsp;</a></span>Close()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void gstCamera::Close </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Stop streaming the camera. </p>
<dl class="section note"><dt>Note</dt><dd><a class="el" href="classgstCamera.html#a8798df5c10fff5ecbaf2598816c94f55" title="Stop streaming the camera. ">Close()</a> is automatically called by the camera's destructor when it gets deleted, so you do not explicitly need to call <a class="el" href="classgstCamera.html#a8798df5c10fff5ecbaf2598816c94f55" title="Stop streaming the camera. ">Close()</a> before exiting the program if you delete your camera object. </dd></dl>

<p>Reimplemented from <a class="el" href="classvideoSource.html#a19ed8f98e4ce28462296b498804005ae">videoSource</a>.</p>

</div>
</div>
<a id="acdad73a19658174d179845611f4e8b3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acdad73a19658174d179845611f4e8b3f">&#9670;&nbsp;</a></span>Create() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classgstCamera.html">gstCamera</a>* gstCamera::Create </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structvideoOptions.html">videoOptions</a> &amp;&#160;</td>
          <td class="paramname"><em>options</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a MIPI CSI or V4L2 camera device. </p>

</div>
</div>
<a id="a1747140a15dd83dbd3593c375bbc85d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1747140a15dd83dbd3593c375bbc85d0">&#9670;&nbsp;</a></span>Create() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classgstCamera.html">gstCamera</a>* gstCamera::Create </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>camera</em> = <code>NULL</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a MIPI CSI or V4L2 camera device. </p>
<p><a class="el" href="classgstCamera.html" title="MIPI CSI and V4L2 camera capture using GStreamer and nvarguscamerasrc or v4l2src elements. ">gstCamera</a> will use the <code>nvarguscamerasrc</code> GStreamer element for MIPI CSI cameras, and the <code>v4l2src</code> GStreamer element for capturing V4L2 cameras, like USB webcams.</p>
<p>The camera will be created with a resolution indicated by <a class="el" href="classgstCamera.html#a211a6c9359a2f43054771f15e7628a5e" title="Default camera width, unless otherwise specified during Create() ">gstCamera::DefaultWidth</a> and <a class="el" href="classgstCamera.html#a42ab558b8ff9a0bf47b768c5122825b7" title="Default camera height, unless otherwise specified during Create() ">gstCamera::DefaultHeight</a> (1280x720 by default).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">camera</td><td>Camera device to use. If using MIPI CSI, this string can be <code>NULL</code> to default to CSI camera 0, otherwise the string should contain the device index of the CSI camera (e.g. <code>"0"</code> for CSI camera 0 or <code>"1"</code> for CSI camera 1, ect). If using V4L2, the string should contain the <code>/dev/video</code> node to use (e.g. <code>"/dev/video0"</code> for V4L2 camera 0). By default, <code>camera</code> parameter is NULL and MIPI CSI camera 0 is used.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the created <a class="el" href="classgstCamera.html" title="MIPI CSI and V4L2 camera capture using GStreamer and nvarguscamerasrc or v4l2src elements. ">gstCamera</a> device, or NULL if there was an error. </dd></dl>

</div>
</div>
<a id="a4e35c53ac1d65ba5c0319278ca097766"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e35c53ac1d65ba5c0319278ca097766">&#9670;&nbsp;</a></span>Create() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classgstCamera.html">gstCamera</a>* gstCamera::Create </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>camera</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a MIPI CSI or V4L2 camera device. </p>
<p><a class="el" href="classgstCamera.html" title="MIPI CSI and V4L2 camera capture using GStreamer and nvarguscamerasrc or v4l2src elements. ">gstCamera</a> will use the <code>nvarguscamerasrc</code> GStreamer element for MIPI CSI cameras, and the <code>v4l2src</code> GStreamer element for capturing V4L2 cameras, like USB webcams.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">width</td><td>desired width (in pixels) of the camera resolution. This should be from a format that the camera supports.</td></tr>
    <tr><td class="paramname">height</td><td>desired height (in pixels) of the camera resolution. This should be from a format that the camera supports.</td></tr>
    <tr><td class="paramname">camera</td><td>Camera device to use. If using MIPI CSI, this string can be <code>NULL</code> to default to CSI camera 0, otherwise the string should contain the device index of the CSI camera (e.g. <code>"0"</code> for CSI camera 0 or <code>"1"</code> for CSI camera 1, ect). If using V4L2, the string should contain the <code>/dev/video</code> node to use (e.g. <code>"/dev/video0"</code> for V4L2 camera 0). By default, <code>camera</code> parameter is NULL and MIPI CSI camera 0 is used.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the created <a class="el" href="classgstCamera.html" title="MIPI CSI and V4L2 camera capture using GStreamer and nvarguscamerasrc or v4l2src elements. ">gstCamera</a> device, or NULL if there was an error. </dd></dl>

</div>
</div>
<a id="a40bdf4c4b7675e33bf670df07918e9c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40bdf4c4b7675e33bf670df07918e9c6">&#9670;&nbsp;</a></span>GetType()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual uint32_t gstCamera::GetType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the interface type (<a class="el" href="classgstCamera.html#a9e83835ff04fb08ecef14a67efb5c3d5" title="Unique type identifier of gstCamera class. ">gstCamera::Type</a>) </p>

<p>Reimplemented from <a class="el" href="classvideoSource.html#a76f6f92cf40ad72e9d7f76538d583e37">videoSource</a>.</p>

</div>
</div>
<a id="a28f4842c5648a253a1acee5276ac8486"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28f4842c5648a253a1acee5276ac8486">&#9670;&nbsp;</a></span>Open()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool gstCamera::Open </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Begin streaming the camera. </p>
<p>After <a class="el" href="classgstCamera.html#a28f4842c5648a253a1acee5276ac8486" title="Begin streaming the camera. ">Open()</a> is called, frames from the camera will begin to be captured.</p>
<p><a class="el" href="classgstCamera.html#a28f4842c5648a253a1acee5276ac8486" title="Begin streaming the camera. ">Open()</a> is not stricly necessary to call, if you call one of the <a class="el" href="classgstCamera.html#add77384dd73058543da2f1c722e00a30" title="Capture the next image frame from the camera. ">Capture()</a> functions they will first check to make sure that the stream is opened, and if not they will open it automatically for you.</p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> if an error occurred opening the stream. </dd></dl>

<p>Reimplemented from <a class="el" href="classvideoSource.html#aa7907ba2392b6ea5f747409d1bfbc18b">videoSource</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a42ab558b8ff9a0bf47b768c5122825b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42ab558b8ff9a0bf47b768c5122825b7">&#9670;&nbsp;</a></span>DefaultHeight</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const uint32_t gstCamera::DefaultHeight = 720</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default camera height, unless otherwise specified during <a class="el" href="classgstCamera.html#acdad73a19658174d179845611f4e8b3f" title="Create a MIPI CSI or V4L2 camera device. ">Create()</a> </p>

</div>
</div>
<a id="a211a6c9359a2f43054771f15e7628a5e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a211a6c9359a2f43054771f15e7628a5e">&#9670;&nbsp;</a></span>DefaultWidth</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const uint32_t gstCamera::DefaultWidth = 1280</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default camera width, unless otherwise specified during <a class="el" href="classgstCamera.html#acdad73a19658174d179845611f4e8b3f" title="Create a MIPI CSI or V4L2 camera device. ">Create()</a> </p>

</div>
</div>
<a id="a9e83835ff04fb08ecef14a67efb5c3d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9e83835ff04fb08ecef14a67efb5c3d5">&#9670;&nbsp;</a></span>Type</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const uint32_t gstCamera::Type = (1 &lt;&lt; 0)</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unique type identifier of <a class="el" href="classgstCamera.html" title="MIPI CSI and V4L2 camera capture using GStreamer and nvarguscamerasrc or v4l2src elements. ">gstCamera</a> class. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>jetson-utils/<a class="el" href="gstCamera_8h_source.html">gstCamera.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classgstCamera.html">gstCamera</a></li>
    <li class="footer">Generated on Tue Jul 14 2020 21:59:35 for Jetson Inference by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
